A two-dimensional area (2D) can be divided into square units called pixels. Likewise, a 3D volume can be divided into cubical units called voxels. In much the same way that a camera can be used to create a 2D pixel representation of a real-world object by taking a picture, a 3D voxel representation of a real-world object can be constructed by taking many pictures of an object from different angles. Other techniques for generating a 3D voxel representation include using laser range-finding techniques. Determining the surface normals in conjunction with other known techniques can be used to construct meshes. In addition, surface normals can also be used to determine the lighting of an object.